package com.ly.heart.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ly.common.annotation.Excel;
import com.ly.common.core.domain.BaseVo;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 金蝶-发票-应付单/采购开票对象 erp_king_invoice_payable_info
 *
 * @author wutao
 * @date 2024-06-26
 */
@TableName ( "erp_king_invoice_payable_info" )
@ApiModel ( value = "erp_king_invoice_payable_info对象", description = "金蝶-发票-应付单/采购开票" )
@Data
public class KingInvoicePayableEntity extends BaseVo {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId ( value = "id", type = IdType.INPUT )
    private String id;

    @ApiModelProperty ( "父应付单Id，用于冲红下推" )
    @TableField ( "parent_id" )
    @Excel ( name = "父应付单" )
    private String parentId;

    /**
     * 单据类型,接口
     */
    @ApiModelProperty ( "单据类型编码,接口" )
    @TableField ( "doc_type_code" )
    @Excel ( name = "单据类型,接口" )
    private String docTypeCode;

    /**
     * 供应商Id，供应商接口
     */
    @ApiModelProperty ( "供应商Id，供应商接口" )
    @TableField ( "supplier_id" )
    @Excel ( name = "供应商Id，供应商接口" )
    private String supplierId;

    /**
     * 采购员Id，user接口
     */
    @ApiModelProperty ( "采购员Id，user接口" )
    @TableField ( "procure_user_id" )
    @Excel ( name = "采购员Id，user接口" )
    private String procureUserId;

    /**
     * 立账类型;1:暂估应付;2:财务应付
     */
    @ApiModelProperty ( "立账类型;2:暂估应付;3:财务应付" )
    @TableField ( "account_type" )
    @Excel ( name = "立账类型;2:暂估应付;3:财务应付" )
    private String accountType;

    /**
     * 单据编号,文本
     */
    @ApiModelProperty ( "单据编号,文本" )
    @TableField ( "doc_no" )
    @Excel ( name = "单据编号,文本" )
    private String docNo;

    /**
     * 币别，走接口
     */
    @ApiModelProperty ( "币别，走接口" )
    @TableField ( "currency_id" )
    @Excel ( name = "币别，走接口" )
    private String currencyId;

    /**
     * 结算组织，当前登录公司
     */
    @ApiModelProperty ( "结算组织，当前登录公司" )
    @TableField ( "settlement_dept_id" )
    @Excel ( name = "结算组织，当前登录公司" )
    private String settlementDeptId;

    /**
     * 业务时间
     */
    @ApiModelProperty ( "业务时间" )
    @TableField ( "biz_time" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    @Excel ( name = "业务时间", width = 30, dateFormat = "yyyy-MM-dd" )
    private Date bizTime;

    @ApiModelProperty ( "税额" )
    @TableField ( "rate_amount" )
    @Excel ( name = "税额" )
    private String rateAmount;

    @ApiModelProperty ( "不含税金额" )
    @TableField ( "not_tax_amount" )
    @Excel ( name = "不含税金额" )
    private String notTaxAmount;

    @ApiModelProperty ( "价税合计" )
    @TableField ( "total_tax_price" )
    @Excel ( name = "价税合计" )
    private String totalTaxPrice;

    @ApiModelProperty ( "汇率" )
    @TableField ( "rate" )
    @Excel ( name = "汇率" )
    private String rate;

    @ApiModelProperty ( "不含税金额本位币" )
    @TableField ( "not_tax_amount_currency" )
    @Excel ( name = "不含税金额本位币" )
    private String notTaxAmountCurrency;

    @ApiModelProperty ( "税额本位币" )
    @TableField ( "rate_amount_currency" )
    @Excel ( name = "税额本位币" )
    private String rateAmountCurrency;

    @ApiModelProperty ( "价税合计本位币" )
    @TableField ( "total_tax_price_currency" )
    @Excel ( name = "价税合计本位币" )
    private String totalTaxPriceCurrency;

    /**
     * 付款组织Id，当前登录公司
     */
    @ApiModelProperty ( "付款组织Id，当前登录公司" )
    @TableField ( "pay_dept_id" )
    @Excel ( name = "付款组织Id，当前登录公司" )
    private String payDeptId;

    /**
     * 到期日
     */
    @ApiModelProperty ( "到期日" )
    @TableField ( "due_time" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    @Excel ( name = "到期日", width = 30, dateFormat = "yyyy-MM-dd" )
    private Date dueTime;

    /**
     * 付款条件receiptPayCondition接口
     */
    @ApiModelProperty ( "付款条件receiptPayCondition接口" )
    @TableField ( "pay_terms_id" )
    @Excel ( name = "付款条件receiptPayCondition接口" )
    private String payTermsId;

    /**
     * 采购组织id,当前登录公司
     */
    @ApiModelProperty ( "采购组织id,当前登录公司" )
    @TableField ( "procure_company_id" )
    @Excel ( name = "采购组织id,当前登录公司" )
    private String procureCompanyId;

    /**
     * 单据状态;1:创建
     */
    @ApiModelProperty ( "单据状态；\n" +
            "Z：暂存\n" +
            "A：创建\n" +
            "B：审核中\n" +
            "C：已审核\n" +
            "D：重新审核\n" +
            "E：已冲红" )
    @TableField ( "status" )
    @Excel ( name = "单据状态" )
    private String status;

    /**
     * 采购部门id，dept部门接口
     */
    @ApiModelProperty ( "采购部门id，dept部门接口" )
    @TableField ( "procure_dept_id" )
    @Excel ( name = "采购部门id，dept部门接口" )
    private String procureDeptId;

    /**
     * 整单折扣金额
     */
    @ApiModelProperty ( "整单折扣金额" )
    @TableField ( "discount_amount" )
    @Excel ( name = "整单折扣金额" )
    private String discountAmount;

    /**
     * 按费用项目生成计划;1:是;2:否
     */
    @ApiModelProperty ( "按费用项目生成计划;1:是;2:否" )
    @TableField ( "is_fee" )
    @Excel ( name = "按费用项目生成计划;1:是;2:否" )
    private Boolean isFee;

    /**
     * 价外税;1:是;2:否
     */
    @ApiModelProperty ( "价外税;1:是;2:否" )
    @TableField ( "is_extra_price_tax" )
    @Excel ( name = "价外税;1:是;2:否" )
    private Boolean isExtraPriceTax;

    /**
     * 按含税单价录入;1:是;2:否
     */
    @ApiModelProperty ( "按含税单价录入;1:是;2:否" )
    @TableField ( "is_include_tax_price" )
    @Excel ( name = "按含税单价录入;1:是;2:否" )
    private Boolean isIncludeTaxPrice;

    /**
     * 税额计入成本;1:是;2:否
     */
    @ApiModelProperty ( "税额计入成本;1:是;2:否" )
    @TableField ( "is_tax_cost_amount" )
    @Excel ( name = "税额计入成本;1:是;2:否" )
    private Boolean isTaxCostAmount;

    /**
     * 先到票后入库;1:是;2:否
     */
    @ApiModelProperty ( "先到票后入库;1:是;2:否" )
    @TableField ( "is_tickets_before" )
    @Excel ( name = "先到票后入库;1:是;2:否" )
    private Boolean isTicketsBefore;

    /**
     * 订货方,供应商接口
     */
    @ApiModelProperty ( "订货方,供应商接口" )
    @TableField ( "order_supplier_id" )
    @Excel ( name = "订货方,供应商接口" )
    private String orderSupplierId;

    /**
     * 供货方，供应商接口
     */
    @ApiModelProperty ( "供货方，供应商接口" )
    @TableField ( "goods_supplier_id" )
    @Excel ( name = "供货方，供应商接口" )
    private String goodsSupplierId;

    /**
     * 收款方,供应商接口
     */
    @ApiModelProperty ( "收款方,供应商接口" )
    @TableField ( "receipt_supplier_id" )
    @Excel ( name = "收款方,供应商接口" )
    private String receiptSupplierId;

    /**
     * 结算方式
     */
    @ApiModelProperty ( "结算方式" )
    @TableField ( "settlement_type_id" )
    @Excel ( name = "结算方式" )
    private String settlementTypeId;

    /**
     * 到期日计算日期
     */
    @ApiModelProperty ( "到期日计算日期" )
    @TableField ( "due_calculation_time" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    @Excel ( name = "到期日计算日期", width = 30, dateFormat = "yyyy-MM-dd" )
    private Date dueCalculationTime;

    /**
     * 备注
     */
    @ApiModelProperty ( "备注" )
    @TableField ( "remarks" )
    @Excel ( name = "备注" )
    private String remarks;

    /**
     * 所属公司,当前登录公司
     */
    @ApiModelProperty ( "所属公司,当前登录公司" )
    @TableField ( "dept_id" )
    @Excel ( name = "所属公司,当前登录公司" )
    private String deptId;

    @ApiModelProperty ( "源单类型，根据实际选择下推的单据类型：" +
            "1；手动新增；\n" +
            "2：采购订单；\n" +
            "3：采购入库单；\n" +
            "4：采购退料单\n" +
            "5：冲红应付单；" )
    @TableField ( "source_doc_type" )
    private Integer sourceDocType;

    @ApiModelProperty ( "流程状态" )
    @TableField ( "state" )
    private String state;

    @ApiModelProperty ( "创建人" )
    @TableField ( "create_user_id" )
    private String createUserId;

    @ApiModelProperty ( "创建时间" )
    @TableField ( "create_date" )
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createDate;

    @ApiModelProperty ( "更新人" )
    @TableField ( "update_user_id" )
    private String updateUserId;

    @ApiModelProperty ( "更新时间" )
    @TableField ( "update_date" )
    private Date updateDate;

    /**
     * 是否可用
     */
    @ApiModelProperty ( "是否发送" )
    @TableField ( "is_send" )
    @Excel ( name = "是否发送" )
    private Integer isSend;

    /**
     * 是否可用
     */
    @ApiModelProperty ( "是否可用" )
    @TableField ( "is_used" )
    @Excel ( name = "是否可用" )
    private Integer isUsed;

    @ApiModelProperty ( "单据类型名称" )
    @TableField ( exist = false )
    private String docTypeName;

    @ApiModelProperty ( "供应商" )
    @TableField ( exist = false )
    private String supplierName;

    @ApiModelProperty ( "采购部门" )
    @TableField ( exist = false )
    private String procureDeptName;

    @ApiModelProperty ( "订货方" )
    @TableField ( exist = false )
    private String orderSupplierName;

    @ApiModelProperty ( "供货方" )
    @TableField ( exist = false )
    private String goodsSupplierName;

    @ApiModelProperty ( "收款方" )
    @TableField ( exist = false )
    private String receiptSupplierName;

    @ApiModelProperty ( "结算方式" )
    @TableField ( exist = false )
    private String settlementTypeName;

    @ApiModelProperty ( "付款条件" )
    @TableField ( exist = false )
    private String payTermsTitle;

    @ApiModelProperty ( "币别编码，前端不处理，送金蝶" )
    @TableField ( exist = false )
    private String currencyCode;

    @ApiModelProperty ( "供应商编码，前端不处理，送金蝶" )
    @TableField ( exist = false )
    private String supplierCode;

    @ApiModelProperty ( "采购部门编码，前端不处理，送金蝶" )
    @TableField ( exist = false )
    private String procureDeptCode;

    @ApiModelProperty ( "订货方编码，前端不处理，送金蝶" )
    @TableField ( exist = false )
    private String forderCode;

    @ApiModelProperty ( "供货方编码，前端不处理，送金蝶" )
    @TableField ( exist = false )
    private String goodsCode;

    @ApiModelProperty ( "收款方编码，前端不处理，送金蝶" )
    @TableField ( exist = false )
    private String receiptCode;

    @ApiModelProperty ( "结算编码，前端不处理，送金蝶" )
    @TableField ( exist = false )
    private String settlementCode;

    @ApiModelProperty ( "采购员" )
    @TableField ( exist = false )
    private String procureUser;

    @ApiModelProperty ( "币别名称" )
    @TableField ( exist = false )
    private String currencyName;

    @ApiModelProperty ( "结算组织" )
    @TableField ( exist = false )
    private String settlementDeptName;

    @ApiModelProperty ( "采购组织" )
    @TableField ( exist = false )
    private String procureCompanyName;

    @ApiModelProperty ( "付款组织Id，当前登录公司" )
    @TableField ( exist = false )
    private String payDeptName;

    @ApiModelProperty ( "物料名称" )
    @TableField ( exist = false )
    private String materialName;

    @ApiModelProperty ( "物料编码" )
    @TableField ( exist = false )
    private String materialCode;

    @ApiModelProperty ( "业务type" )
    @TableField ( exist = false )
    private String businessType;

    @ApiModelProperty ( "流程模型id" )
    @TableField ( exist = false )
    private String modelId;

    @ApiModelProperty ( "流程实例id" )
    @TableField ( "instance_id" )
    private String instanceId;

    @ApiModelProperty ( "应付单明细行Id" )
    @TableField ( exist = false )
    private String payableDetailId;

    @ApiModelProperty ( "折扣率" )
    @TableField ( exist = false )
    private String discountRate;

    @ApiModelProperty ( "明细行折扣额" )
    @TableField ( exist = false )
    private String detailDiscountAmount;

    @ApiModelProperty ( "明细行不含税金额" )
    @TableField ( exist = false )
    private String detailNotTaxAmount;

    @ApiModelProperty ( "明细行不含税金额本位币" )
    @TableField ( exist = false )
    private String detailNotTaxAmountCurrency;

    @ApiModelProperty ( "明细行税率" )
    @TableField ( exist = false )
    private String detailRate;

    @ApiModelProperty ( "明细行税额" )
    @TableField ( exist = false )
    private String detailRateAmount;

    @ApiModelProperty ( "明细行价税合计" )
    @TableField ( exist = false )
    private String detailTotalTaxPrice;

    @ApiModelProperty ( "明细行税额本位币" )
    @TableField ( exist = false )
    private String detailRateAmountCurrency;

    @ApiModelProperty ( "明细行价税合计本位币" )
    @TableField ( exist = false )
    private String detailTotalTaxPriceCurrency;

    @ApiModelProperty ( "创建人" )
    @TableField ( exist = false )
    private String createUserName;

    @ApiModelProperty ( "明细行源单类型" )
    @TableField ( exist = false )
    private String detailSourceDocType;

    @ApiModelProperty ( "明细行源单Id" )
    @TableField ( exist = false )
    private String detailSourceId;

    @ApiModelProperty ( "明细行源单物料Id，即源单明细行Id" )
    @TableField ( exist = false )
    private String sourceMaterialDetailId;

    @ApiModelProperty ( "明细行开票数量" )
    @TableField ( exist = false )
    private String detailNum;

    @ApiModelProperty ( "源单行号" )
    @TableField ( exist = false )
    private String detailSourceLineNumber;

    @ApiModelProperty ( "源单编码" )
    @TableField ( exist = false )
    private String detailSourceDocNo;

    /**
     * 下面未计算字段
     */
    @ApiModelProperty ( "付款核销状态" )
    @TableField ( exist = false )
    private String verifyStatus;

    @ApiModelProperty ( "付款核销金额" )
    @TableField ( exist = false )
    private String verifyAmount = "0";

    @ApiModelProperty ( "对应源单金额" )
    @TableField ( exist = false )
    private String sourceAmount = "0";

    @ApiModelProperty ( "成本差异金额" )
    @TableField ( exist = false )
    private String differenceAmount = "0";

    @ApiModelProperty ( "对应源单价税合计" )
    @TableField ( exist = false )
    private String sourceTaxPriceAmount = "0";

    @ApiModelProperty ( "价税合计差异额" )
    @TableField ( exist = false )
    private String taxPriceAmountDiff = "0";

    @ApiModelProperty ( "对应源单汇率" )
    @TableField ( exist = false )
    private String sourceRate = "0";

    @ApiModelProperty ( "成本汇率差异金额" )
    @TableField ( exist = false )
    private String rateDiff = "0";

    @ApiModelProperty ( "价税合计汇率差异金额" )
    @TableField ( exist = false )
    private String taxPriceAmountRateDiff = "0";

}
